package org.huawei260.OD260;

import java.util.Scanner;

/**
 * @Auther: qingle
 * @Date: 2024/8/19-16:11
 * @Description:
 * 为了充分发挥GPU算力，
 * 需要尽可能多的将任务交给GPU执行，
 * 现在有一个任务数组，
 * 数组元素表示在这1s内新增的任务个数，
 * 且每秒都有新增任务，
 * 假设GPU最多一次执行n个任务，
 * 一次执行耗时1s，
 * 在保证GPU不空闲的情况下，最少需要多长时间执行完成。
 *
 * 输入描述
 * 第一个参数为GPU最多执行的任务个数，取值范围1 ~ 10000
 * 第二个参数为任务数组的长度，取值范围1 ~ 10000
 * 第三个参数为任务数组，数字范围1 ~ 10000
 *
 * 输出描述
 * 执行完所有任务需要多少秒
 *
 * 3
 * 5
 * 1 2 3 4 5
 *
 * @version: 1.0
 */
public class O0005_任务调度_no {

	public static void main(String[] args) {
		try (Scanner scanner = new Scanner(System.in)) {
			int n = scanner.nextInt();
			int len = scanner.nextInt();
			int[] jobCount = new int[len];
			for (int i = 0; i < len; i++) {
				jobCount[i] = scanner.nextInt();
			}
			solution(n, jobCount);
		}
	}

	private static void solution(int n, int[] jobCount) {
		int time = 0;
		int remaining = 0;
		for (int count : jobCount) {
			if (count + remaining > n) {
				remaining = count + remaining - n;
			} else {
				remaining = 0;
			}
			time++;
		}
		time += remaining / n;
		if (remaining % n > 0) {
			time++;
		}
		System.out.println(time);
	}
}
